Systems and methods for maintaining a self-driving vehicle

ABSTRACT

A computer-based method for maintaining an autonomous or self-driving vehicle is provided. The method is implemented using a vehicle controlling (“VC”) computer device installed on the vehicle. The method may include determining that a maintenance operation is required for the self-driving vehicle, retrieving an operator schedule for an operator of the self-driving vehicle, retrieving a facility schedule for a facility, determining a time for performing the maintenance operation based upon the operator schedule, the facility schedule, and an amount of time required to (i) complete the maintenance operation, (ii) drive the self-driving vehicle from a first location to the facility to arrive at the determined time, and (iii) drive the self-driving vehicle to a second location, instructing the self-driving vehicle to drive from the first location to the facility to arrive at the determined time; and/or instructing the self-driving vehicle to drive from the facility a second location.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 14/795,797, filed Jul. 9, 2015 and entitled“Systems and Methods for Maintaining a Self-Driving Vehicle,” whichclaims the benefit of priority of U.S. Provisional Patent ApplicationSer. No. 62/127,700, filed Mar. 3, 2015, and of U.S. Provisional PatentApplication Ser. No. 62/126,258, filed Feb. 27, 2015, the contents ofall of which are hereby incorporated by reference herein in theirentireties and for all purposes.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to maintaining a self-drivingvehicle and, more particularly to systems and methods for scheduling andtracking maintenance for a self-driving vehicle.

BACKGROUND

Self-driving vehicles (also known as driverless cars and roboticvehicles) use data from a plurality of sensors to detect theirsurroundings. The self-driving vehicles use the data to determinecurrent conditions around the self-driving vehicle and make decisionsabout the operation of the self-driving vehicle based upon those currentconditions. To ensure the accuracy of the data from the plurality ofsensors, each of the sensors needs to be precisely aligned andcalibrated. In addition, the systems that act based upon the data, suchas steering, braking, and acceleration, need to be precisely aligned, aswell to prevent issues, such as over steering and to ensure that theself-driving vehicle actually goes where desired and planned. Over time,the alignment and/or calibration of these sensors and systems maychange. Thus, it may be necessary for the sensors and other systems ofthe self-driving vehicles to be strictly maintained to themanufacturer's specifications to ensure proper operation.

However, many people may ignore the manufacturer's maintenancespecifications, thus leading to potential issues with the operation oftheir vehicles. For example, some vehicle owners may not take the timeto go to a maintenance facility to have their vehicle maintained. It maybe advisable to ensure the operational safety of self-driving vehiclesby getting issues corrected sooner rather than later. Self-drivingvehicle owners who ignore maintenance may create dangerous conditionsfor self-driving vehicles that depend on the plurality of sensors andother systems to enable proper and safe operation of the self-drivingvehicles.

BRIEF SUMMARY

A self-driving vehicle may include a plurality of sensors and aself-driving vehicle controller (also known as a vehicle controlling(“VC”) computer device). The plurality of sensors may detect the currentsurroundings and location of the self-driving vehicle. The plurality ofsensors may include, but are not limited to, radar, LIDAR, GlobalPositioning System (GPS), and computer vision. The self-driving vehiclecontroller may interpret the sensory information to identify appropriatenavigation paths, as well as obstacles and relevant signage.Additionally, the self-driving vehicle controller may control thedirection and speed of the self-driving vehicle. The self-drivingvehicle controller may allow the self-driving vehicle to travel frompoint A to point B without input from a human operator. The presentembodiments may relate to systems and methods for scheduling maintenancefor a self-driving vehicle. The method may be implemented using thevehicle controlling (“VC”) computer device installed on a self-drivingvehicle. The method may include determining that a maintenance operationis required for the self-driving vehicle, retrieving an operatorschedule for an operator of the self-driving vehicle, retrieving afacility schedule for a facility selected to perform the maintenanceoperation, and/or determining a time for performing the maintenanceoperation based upon the operator schedule, the facility schedule,and/or an amount of time required to (i) complete the maintenanceoperation. (ii) drive the self-driving vehicle from a first location tothe facility to arrive at the determined time, and/or (iii) drive theself-driving vehicle to a second location. The method may furtherinclude instructing the self-driving vehicle to drive from the firstlocation to the facility to arrive at the determined time, and/or aftercompletion of the maintenance operation, instructing the self-drivingvehicle to drive from the facility a second location.

In one aspect, a computer-based method for maintaining a self-drivingvehicle may be provided. The method may be implemented using a vehiclecontrolling (“VC”) computer device installed on a self-driving vehicle.The VC computer device may be in communication with a memory. The methodmay include (1) determining by the VC computer device that a maintenanceoperation is required for the self-driving vehicle, and/or (2)retrieving by the VC computer device an operator schedule for anoperator of the self-driving vehicle. The operator schedule may includea plurality of times and/or locations that the operator is required tobe at over a period of time. The method may also include (3) retrievingby the VC computer device a facility schedule for a facility selected toperform the maintenance operation. The facility schedule may include aplurality of times that the facility is available to perform maintenanceoperations. The method may further include (4) determining by the VCcomputer device a time for performing the maintenance operation basedupon the operator schedule, the facility schedule, and/or an amount oftime required to (i) complete the maintenance operation, (ii) drive theself-driving vehicle from a first location to the facility to arrive atthe determined time, and/or (iii) drive the self-driving vehicle to asecond location. In addition, the method may include (5) instructing (bythe VC computer device) the self-driving vehicle to drive from the firstlocation to the facility to arrive at the determined time, and/or (6)after completion of the maintenance operation, instructing by the VCcomputer device the self-driving vehicle to drive from the facility asecond location. The method may include additional, fewer, oralternative actions, including those discussed elsewhere herein.

In another aspect, a vehicle controlling (“VC”) computer system used toschedule and perform maintenance on a self-driving vehicle may beprovided. The VC computer system may be installed in a self-drivingvehicle and the VC computer system may include at least one processorcommunicatively coupled to at least one memory device. The at least oneprocessor may be programmed to determine that a maintenance operation isrequired for the self-driving vehicle and/or retrieve an operatorschedule for an operator of the self-driving vehicle. The operatorschedule may include a plurality of times and/or locations that theoperator is scheduled to be at over a period of time. The at least oneprocessor may be also programmed to retrieve a facility schedule for afacility selected to perform the maintenance operation. The facilityschedule may include a plurality of times that the facility is availableto perform maintenance operations. The at least one processor may befurther programmed to determine a time for performing the maintenanceoperation based upon the operator schedule, the facility schedule,and/or an amount of time required to (i) complete the maintenanceoperation, (ii) drive the self-driving vehicle from a first location tothe facility to arrive at the determined time, and/or (iii) drive theself-driving vehicle to a second location. In addition, the at least oneprocessor may be programmed to instruct the self-driving vehicle todrive from the first location to the facility to arrive at thedetermined time, and/or after completion of the maintenance operation,instruct the self-driving vehicle to drive from the facility a secondlocation. The at least one processor may be programmed to performadditional, fewer, or alternative actions, including those discussedelsewhere herein.

In yet another aspect, at least one non-transitory computer-readablestorage media having computer-executable instructions embodied thereonmay be provided. When executed by at least one processor, thecomputer-executable instructions may cause the processor to determinethat a maintenance operation is required for a self-driving vehicle andretrieve an operator schedule for an operator of the self-drivingvehicle. The operator schedule may include a plurality of times andlocations that the operator is scheduled to be at over a period of time.The computer-executable instructions may also cause the at least oneprocessor to retrieve a facility schedule for a facility selected toperform the maintenance operation. The facility schedule may include aplurality of times that the facility is available to perform maintenanceoperations. The computer-executable instructions may further cause theat least one processor to determine a time for performing themaintenance operation based upon the operator schedule, the facilityschedule, and/or an amount of time required to (i) complete themaintenance operation, (ii) drive the self-driving vehicle from a firstlocation to the facility to arrive at the determined time, and/or (iii)drive the self-driving vehicle to a second location. In addition, thecomputer-executable instructions may cause the at least one processor toinstruct the self-driving vehicle to drive from the first location tothe facility to arrive at the determined time, and after completion ofthe maintenance operation, instruct the self-driving vehicle to drivefrom the facility a second location. The computer-executableinstructions may cause the at least one processor to perform additional,fewer, or alternative actions, including those discussed elsewhereherein.

In yet another aspect, a computer-based method for maintaining aself-driving vehicle may be provided. The method may include (1)determining, by a remote server in communication with the self-drivingvehicle, that a maintenance operation is required for the self-drivingvehicle and (2) generating, by the remote server, a first messagerepresenting the maintenance operation required for the self-drivingvehicle. The method may further include (3) transmitting, by the remoteserver, the first message to the self-driving vehicle, wherein the firstmessage causes the self-driving vehicle to perform automatic maintenancescheduling, the automatic maintenance scheduling including (a)retrieving an operator schedule for an operator of the self-drivingvehicle, wherein the operator schedule includes a plurality of times andlocations that the operator is scheduled to be at over a period of time;(b) retrieving a facility schedule for a facility selected to performthe maintenance operation, wherein the facility schedule includes aplurality of times that the facility is available to perform maintenanceoperations; (c) determining a time for performing the maintenanceoperation based upon the operator schedule, the facility schedule, andan amount of time required to (i) complete the maintenance operation,(ii) drive the self-driving vehicle from a first location to thefacility to arrive at the determined time, and (iii) drive theself-driving vehicle to a second location; and (d) driving from thefirst location to the facility to arrive at the determined time. Inaddition, the method may also include (4) receiving, from theself-driving vehicle, a second message representing that the maintenanceoperation is complete. The method may include additional, fewer, oralternative actions, including those discussed elsewhere herein.

Advantages will become more apparent to those skilled in the art fromthe following description of the preferred embodiments which have beenshown and described by way of illustration. As will be realized, thepresent embodiments may be capable of other and different embodiments,and their details are capable of modification in various respects. Inaddition, although certain steps of the example processes are numbered,having such numbering does not indicate or imply that the stepsnecessarily have to be performed in the order listed. The steps may beperformed in the order indicated or in another order. Accordingly, thedrawings and description are to be regarded as illustrative in natureand not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

The Figures described below depict various aspects of the systems andmethods disclosed therein. It should be understood that each Figuredepicts an embodiment of a particular aspect of the disclosed systemsand methods, and that each of the Figures is intended to accord with apossible embodiment thereof. Further, wherever possible, the followingdescription refers to the reference numerals included in the followingFigures, in which features depicted in multiple Figures are designatedwith consistent reference numerals.

There are shown in the drawings arrangements which are presentlydiscussed, it being understood, however, that the present embodimentsare not limited to the precise arrangements and are instrumentalitiesshown, wherein:

FIG. 1 illustrates a view of an exemplary self-driving vehicle;

FIG. 2 illustrates a schematic view of an exemplary communicationssystem for maintaining the self-driving vehicle shown in FIG. 1;

FIG. 3 illustrates an exemplary configuration of an exemplary clientsystem shown in FIG. 2, in accordance with one embodiment of the presentdisclosure;

FIG. 4 illustrates an exemplary configuration of an exemplary servercomputer device shown in FIG. 2, in accordance with one embodiment ofthe present disclosure;

FIG. 5 illustrates a flow chart of an exemplary computer-implementedmethod for maintaining the self-driving vehicle using the system shownin FIG. 2; and

FIG. 6 illustrates a diagram of components of one or more exemplarycomputing devices that may be used in the system shown in FIG. 2.

The Figures depict preferred embodiments for purposes of illustrationonly. One skilled in the art will readily recognize from the followingdiscussion that alternative embodiments of the systems and methodsillustrated herein may be employed without departing from the principlesof the invention described herein.

DETAILED DESCRIPTION

The present embodiments may relate to, inter alia, systems and methodsfor maintaining a self-driving vehicle. A self-driving vehicle mayinclude a plurality of sensors and a self-driving vehicle controller(also known as a vehicle controlling (“VC”) computer device). Theplurality of sensors may detect the current surroundings and location ofthe self-driving vehicle. The plurality of sensors may include, but arenot limited to, radar, LIDAR, Global Positioning System (GPS), andcomputer vision. The self-driving vehicle controller may interpret thesensory information to identify appropriate navigation paths, as well asobstacles and relevant signage. Additionally, the self-driving vehiclecontroller may control the direction and speed of the self-drivingvehicle. The self-driving vehicle controller may allow the self-drivingvehicle to travel from point A to point B without input from a humanoperator.

In the exemplary embodiment, the self-driving vehicle controller mayinclude a communication device that allows it to communicate with otherdevices via the Internet. In the exemplary embodiment, the self-drivingvehicle controller may be in communication with one or more clientsystems that are associated with one or more operators of theself-driving vehicle. Client systems may be computers that include a webbrowser or a software application to enable the self-driving vehiclecontroller to access the client system and vice versa using the Internetor a direct connection, such as a cellular network connection.

An operator of a self-driving vehicle may be an individual or pluralityof individuals associated with the self-driving vehicle, where theoperator is responsible for the well-maintained operation of theself-driving vehicle and/or may use the self-driving vehicle on aregular basis. For example, the operator may be an individual owner ofthe self-driving vehicle in the case of a personal automobile. Theoperator may be a group of people who share access to the self-drivingvehicle, such as a family. Additionally, the operator may be a managerof a fleet of self-driving vehicles, such as an automated taxi service.

Each client system may store a schedule for the associated operator. Theoperator schedule may include a plurality of times and locations wherethe operator may be scheduled to be. For example, a schedule mayinclude, but is not limited to, when the operator will be at work, whenthe operator will be at home, when the operator will be at meetings awayfrom a primary work location, and/or when the operator is scheduled totransport family members and to what locations those family members arescheduled to be taken.

In the exemplary embodiment, the self-driving vehicle controller mayalso be in communication with one or more facility computer devices. Thefacility computer devices may be associated with maintenance facilitiesthat are capable of and selected (either by the operator or themanufacturer of the vehicle) for performing maintenance operations onthe self-driving vehicle. Each facility computer device may store aschedule for the associated maintenance facility. The facility schedulemay include, but is not limited to, when the maintenance facility may bescheduled to perform other maintenance operations, what maintenanceoperations the maintenance facility may be capable of performing, atwhat times the maintenance facility may be available to performmaintenance operations, and/or a length of time needed to performdifferent maintenance operations for such vehicles.

As described below in more detail, the self-driving vehicle controllermay be configured to determine that a maintenance operation is requiredor needed for a self-driving vehicle. This determination may be (i)based upon an error message from a sensor or other system of theself-driving car, (ii) based upon reaching a predetermined operationthreshold, such as mileage, (iii) based upon a message from the operatorof the vehicle; and/or (iv) based upon a message from a remote server,such as a facility computer device or a remote server maintained and/oroperated by a third party. The third party may include, for example, amanufacturer of the vehicle, a maintenance provider, and an insuranceprovider. Upon making such a determination, the self-driving vehicle maybe configured to perform automatic maintenance scheduling. Theself-driving vehicle controller may retrieve the operator schedule forthe operator of the self-driving vehicle. The self-driving vehiclecontroller may retrieve a facility schedule for a facility selected toperform the maintenance operation. The self-driving vehicle controllermay determine a time for performing the maintenance operation based uponthe operator schedule, the facility schedule, and/or an amount of timerequired to (i) complete the maintenance operation, (ii) drive theself-driving vehicle from a first location to the facility to arrive atthe determined time, and/or (iii) drive the self-driving vehicle to asecond location. The self-driving vehicle controller may determine thefirst location based upon where the self-driving vehicle is scheduled tobe before the maintenance operation, and the second location based uponwhere the self-driving vehicle is scheduled to be after the maintenanceoperation.

In some embodiments, the self-driving vehicle controller may alsocalculate travel time between the first location and the facility andthe facility and the second location. The self-driving vehicle mayrequest approval from the operator, via the client system, to performthe maintenance operation at the determined time. Upon receivingapproval from the operator, the self-driving vehicle controller mayconfirm a maintenance appointment with the maintenance facility.

The self-driving vehicle controller may instruct the self-drivingvehicle to drive to the facility to arrive at the determined time. Theself-driving vehicle controller may check-in at the maintenance facilitywhen it arrives. After completion of the maintenance operation, theself-driving vehicle controller may instruct the self-driving vehicle todrive to a predetermined location.

For example, the self-driving vehicle controller may determine that theself-driving vehicle is due for an oil change. The self-driving vehiclecontroller retrieves the operator's schedule and the maintenancefacility's schedule. The self-driving vehicle controller compares thetwo schedules. The self-driving vehicle controller determines that theoperator will be in the office all day on Wednesday (from 9 AM to 5 PM),that the maintenance facility has an opening at 10 AM, and that thelength of time needed to perform the oil change is about one hour. Theself-driving vehicle controller transmits a message to the operator'sclient system requesting approval to perform the oil change at 10 AM onWednesday. After receiving approval from the operator, the self-drivingvehicle controller confirms the appointment with the facility computerdevice associated with the maintenance facility. On Wednesday at 9:30AM, the self-driving vehicle controller instructs the self-drivingvehicle to drive from the operator's office to the maintenance facilityto arrive at 9:55 AM. The self-driving vehicle controller sends amessage to the facility computer device to check-in for the maintenanceappointment. When the maintenance operation is complete, theself-driving vehicle controller instructs the self-driving vehicle todrive from the maintenance facility to the operator's office. Thoughthis example demonstrates the performance of automatic maintenancescheduling involving an oil change, the self-driving vehicle may performautomatic maintenance scheduling in response to any number ofmaintenance requirements. Such maintenance requirements may include, forexample and without limitation, a re-call notification, a notificationof a software and/or electronics upgrade for the self-driving vehicle,an error message that any component of the self-driving vehicle is notfunctioning properly, an indication that the vehicle is in need of anyother periodic maintenance such as a tire rotation, and/or anotification of an expiration of a warranty on the self-driving vehicle.

The methods and system described herein may be implemented usingcomputer programming or engineering techniques including computersoftware, firmware, hardware, or any combination or subset. As disclosedabove, at least one technical problem with prior systems is that thereis a need for ensuring that maintenance is performed on self-drivingvehicles to ensure safe operation while saving time for the operators ofthose vehicles. Vehicle maintenance may become even more important inthe future as vehicles may become more automated and/or include additionelectronics or electronic systems that need to be maintained in safeworking condition. The system and methods described herein address thattechnical problem.

The technical effect of the systems and processes described herein maybe achieved by performing at least one of the following steps: (a)determining by vehicle controlling (“VC”) computer device that amaintenance operation is required for the self-driving vehicle, whereinthe determination is made based upon at least one of the following: (i)receiving an error message from a component of the self-driving vehicleindicating that an error has occurred with the component; (ii) receivinga message from the operator of the self-driving vehicle that amaintenance operation is required; and/or (iii) determining that apredetermined threshold has been exceeded by operation of theself-driving vehicle, wherein the predetermined threshold is one ofmileage and time; (b) retrieving an operator schedule for an operator ofthe self-driving vehicle, wherein the operator schedule includes aplurality of times and locations that the operator is scheduled to be atover a period of time; (c) retrieving a facility schedule for a facilityselected to perform the maintenance operation, wherein the facilityschedule includes a plurality of times that the facility is available toperform maintenance operations; (d) determining by the VC computerdevice a time for performing the maintenance operation based upon theoperator schedule, the facility schedule, and an amount of time requiredto (i) complete the maintenance operation, (ii) drive the self-drivingvehicle from a first location to the facility to arrive at thedetermined time, and (iii) drive the self-driving vehicle to a secondlocation; (e) transmitting, to the facility, a tentative appointment atthe determined time with the facility; (f) transmitting, to theoperator, a request for approval for performing the maintenanceoperation at the determined time; (g) receiving an affirmative responsefrom the operator; (h) transmitting, to the facility, a confirmation ofthe tentative appointment; (i) instructing by the VC computer device theself-driving vehicle to drive from the first location to the facility toarrive at the determined time; (j) upon arriving at the facility,transmitting, to the facility, a check-in signal; and/or (k) aftercompletion of the maintenance operation, instructing, by the VC computerdevice, the self-driving vehicle to drive from the facility the secondlocation, wherein the second location is based upon at least one of theoperator schedule, an operator profile, a starting point, and anoperator input.

The resulting technical effect is that the self-driving vehicle isproperly maintained as set forth by the manufacturer of the self-drivingvehicle to ensure proper operation without inconveniencing the operatorof the self-driving vehicle. In addition, the system may generate andtransmit insurance-related messages to the operator's insurance carrieradvising the insurance carrier that the self-driving vehicle has beenproperly maintained, and may be able to receive messages from theinsurance carrier including updates to the vehicle operator's insurancepolicy (e.g., a change in premium, discount, or rate) that are basedupon the maintenance operation information received by the insurancecarrier. The insurance-related messages sent from the self-drivingvehicle may be received by a remote server maintained by or associatedwith the insurance provider. Updating and/or adjusting the insurancepolicy may include recording and/or accessing details regarding themaintenance history (including automatic and/or “manual” maintenanceoperations) of the self-driving vehicle.

I. Exemplary Self-Driving Vehicle

FIG. 1 depicts a view of an exemplary self-driving vehicle 100.Self-driving vehicle 100 may be an autonomous vehicle capable offulfilling the transportation capabilities of a traditional automobileor other vehicle. Self-driving vehicle 100 may be capable of sensing itsenvironment and navigating without human input. Self-driving vehicle 100may perform all safety-critical functions for the entire trip, with thedriver not expected to control the vehicle at any time. As thisself-driving vehicle 100 would control all functions from start to stop,including all parking functions, it may include unoccupied vehicles.

Self-driving vehicle 100 may include a plurality of sensors 105 and aself-driving vehicle controller 110. The plurality of sensors 105 maydetect the current surroundings and location of self-driving vehicle100. The plurality of sensors 105 may include, but are not limited to,radar, LIDAR, Global Positioning System (GPS), and computer vision.Self-driving vehicle controller 110 may interpret the sensoryinformation to identify appropriate navigation paths, as well asobstacles and relevant signage. In some embodiments, self-drivingvehicle controller 110 may update maps based upon sensory input,allowing self-driving vehicle controller 110 to keep track ofself-driving vehicle's 100 position, even when conditions change or whenself-driving vehicle 100 enters uncharted environments.

Additionally, self-driving vehicle controller 110 may control thedirection and speed of self-driving vehicle 100. Self-driving vehiclecontroller 110 may allow self-driving vehicle 100 to travel from point Ato point B without input from a human operator. In the exemplaryembodiment, self-driving vehicle controller 110 may direct self-drivingvehicle 100 with a human occupant in self-driving vehicle 100.

While self-driving vehicle 100 may be an automobile in the exemplaryembodiment, in other embodiments, self-driving vehicle 100 may be, butis not limited to, other types of ground craft, aircraft, and watercraftvehicles. An operator of self-driving vehicle 100 may be an individualor plurality of individuals associated with self-driving vehicle 100,where the operator may be responsible for the well-maintained operationof self-driving vehicle 100 and/or may use self-driving vehicle 100 on aregular basis. For example, the operator may be an individual owner ofself-driving vehicle 100 in the case of a personal automobile. Theoperator may be a group of people who share access to self-drivingvehicle 100, such as a family. Additionally, the operator may be amanager of a fleet of self-driving vehicles 100, such as an automatedtaxi service.

II. Exemplary Communications System

FIG. 2 depicts a schematic view of an exemplary communications system200 for maintaining self-driving vehicle 100 shown in FIG. 1. System 200includes self-driving vehicle controller 110 (shown in FIG. 1)configured to control self-driving vehicle 100, and schedule maintenancefor self-driving vehicle 100. As described below in more detail,self-driving vehicle controller 110 may be configured to determine thata maintenance operation may be required for self-driving vehicle 100,retrieve an operator schedule for an operator of self-driving vehicle100, retrieve a facility schedule for a facility selected to perform themaintenance operation, determine a time for performing the maintenanceoperation based upon the operator schedule, the facility schedule, andan amount of time required to (i) complete the maintenance operation,(ii) drive the self-driving vehicle from a first location to thefacility to arrive at the determined time, and/or (iii) drive theself-driving vehicle to a second location, instruct self-driving vehicle100 to drive to the facility to arrive at the determined time, and aftercompletion of the maintenance operation, instruct self-driving vehicle100 to drive to a predetermined point.

In the exemplary embodiment, client systems 214 may be computers thatinclude a web browser or a software application to enable self-drivingvehicle controller 110 to access client system 214 and vice versa usingthe Internet or a direct connection, such as a cellular networkconnection. More specifically, client systems 214 may be communicativelycoupled to the Internet through many interfaces including, but notlimited to, at least one of a network, such as the Internet, a localarea network (LAN), a wide area network (WAN), or an integrated servicesdigital network (ISDN), a dial-up-connection, a digital subscriber line(DSL), a cellular phone connection, and a cable modem. Client systems214 may be any device capable of accessing the Internet including, butnot limited to, a desktop computer, a mobile device (e.g., a laptopcomputer, a personal digital assistant (PDA), a cellular phone, asmartphone, a tablet, a phablet, netbook, notebook, smart watches orbracelets, smart glasses, wearable electronics, pagers, etc.), or otherweb-based connectable equipment. Additionally, client system 214 may becommunicatively coupled to self-driving vehicle controller 110 throughmany interfaces including, but not limited to, a direct cableconnection, a Bluetooth® connection, and a Wi-Fi connection.

In the exemplary embodiment, the operator of self-driving vehicle 100stores a schedule on client system 214, such as a digital schedule orcalendar associated with the operator's or vehicle owner's work scheduleand/or home life, and/or family members' digital schedules or calendars.The operator schedule may include a plurality of times and locationswhere the operator is scheduled to be. For example, a schedule mayinclude, but is not limited to, when the operator will be at work, whenthe operator will be at home, when the operator will be at meetings awayfrom a primary work location, and/or when the operator is scheduled totransport family members and to what locations those family members arescheduled to be taken.

In the exemplary embodiment, facility computer devices 210 may becomputers that include a web browser or a software application to enableself-driving vehicle controller 110 to access facility computer device210 using the Internet or a direct connection. More specifically,facility computer devices 210 may be communicatively coupled to theInternet through many interfaces including, but not limited to, at leastone of a network, such as the Internet, a local area network (LAN), awide area network (WAN), or an integrated services digital network(ISDN), a dial-up-connection, a digital subscriber line (DSL), acellular phone connection, and a cable modem.

Facility computer devices 210 may be any device capable of accessing theInternet including, but not limited to, a desktop computer, a laptopcomputer, a personal digital assistant (PDA), a cellular phone, asmartphone, a tablet, a phablet, other mobile devices, or otherweb-based connectable equipment. Additionally, facility computer device210 may be communicatively coupled to self-driving vehicle controller110 through many interfaces including, but not limited to, a directcable connection, a Bluetooth® connection, and a Wi-Fi connection.

In the exemplary embodiment, a user associated with a maintenancefacility stores a schedule for the maintenance facility on facilitycomputer device 210. The facility schedule may include, but is notlimited to, when the maintenance facility is scheduled to perform othermaintenance operations, what maintenance operations the maintenancefacility is capable of performing, the amount of time needed to performvarious maintenance operations, at what times the maintenance facilityis available to perform maintenance operations, and/or which mechanicmay be available to perform the maintenance.

A database server 216 may be communicatively coupled to a database 220that stores data. In one embodiment, database 220 may includemaintenance operations and an amount of time to perform each maintenanceoperation, maintenance facilities and the maintenance operations thateach maintenance facility may perform, a schedule of one or more of theaforementioned maintenance facilities, and a schedule of one or moreoperators of self-driving vehicle 100. In some embodiments, database 220may be stored in self-driving vehicle 100. In some embodiments, database220 may be stored remotely from self-driving vehicle controller 110. Insome embodiments, database 220 may be decentralized.

In the exemplary embodiment, self-driving vehicle controller 110 mayfurther be communicatively coupled to a remote server 212. Remote server212 may be associated with and/or maintained by any one of amanufacturer of self-driving vehicle 100, a maintenance facility, anowner or operator of self-driving vehicle 100, an insurance provider, orany other third party. Remote server 212 may be configured to determinethat self-driving vehicle 100 requires a maintenance operation andtransmit messages to self-driving vehicle controller 110 indicating suchmaintenance is needed. Remote server 212 may be further configured todetermine the impact on an insurance policy associated with the vehiclethat completion of the maintenance operation may have. Remote server 212may be further configured to disable any particular function orcomponent of self-driving vehicle 100 until the maintenance operation iscompleted, for example, to prevent further damage to a particularcomponent.

As described above, self-driving vehicle controller 110 may becommunicatively coupled to the Internet through many interfacesincluding, but not limited to, at least one of a network, such as theInternet, a local area network (LAN), a wide area network (WAN), or anintegrated services digital network (ISDN), a dial-up-connection, adigital subscriber line (DSL), a cellular phone connection, a cablemodem, a Wi-Fi connection, and a Bluetooth® connection.

III. Exemplary Client System

FIG. 3 depicts an exemplary configuration of an exemplary client system214 shown in FIG. 2, in accordance with one embodiment of the presentdisclosure. User computer device 302 may be operated by a user 301. Usercomputer device 302 may include, but is not limited to, client systems214 and facility computer device 210 (shown in FIG. 2). User computerdevice 302 may include a processor 305 for executing instructions. Insome embodiments, executable instructions may be stored in a memory area310. Processor 305 may include one or more processing units (e.g., in amulti-core configuration). Memory area 310 may be any device allowinginformation such as executable instructions and/or transaction data tobe stored and retrieved. Memory area 310 may include one or morecomputer-readable media.

User computer device 302 also may include at least one media outputcomponent 315 for presenting information to user 301. Media outputcomponent 315 may be any component capable of conveying information touser 301. In some embodiments, media output component 315 may include anoutput adapter (not shown), such as a video adapter and/or an audioadapter. An output adapter may be operatively coupled to processor 305and operatively coupleable to an output device, such as a display device(e.g., a cathode ray tube (CRT), liquid crystal display (LCD), lightemitting diode (LED) display, or “electronic ink” display) or an audiooutput device (e.g., a speaker or headphones).

In some embodiments, media output component 315 may be configured topresent a graphical user interface (e.g., a web browser and/or a clientapplication) to user 301. A graphical user interface may include, forexample, an online store interface for viewing and/or purchasing items,and/or a wallet application for managing payment information.

In some embodiments, user computer device 302 may include an inputdevice 320 for receiving input from user 301. User 301 may use inputdevice 320 to, without limitation, select and/or enter one or more itemsto purchase and/or a purchase request, or to access credentialinformation, and/or payment information. Input device 320 may include,for example, a keyboard, a pointing device, a mouse, a stylus, a touchsensitive panel (e.g., a touch pad or a touch screen), a gyroscope, anaccelerometer, a position detector, a biometric input device, and/or anaudio input device. A single component such as a touch screen mayfunction as both an output device of media output component 315 andinput device 320.

User computer device 302 may also include a communication interface 325,communicatively coupled to a remote device such as self-driving vehiclecontroller 110 (shown in FIG. 1). Communication interface 325 mayinclude, for example, a wired or wireless network adapter and/or awireless data transceiver for use with a mobile telecommunicationsnetwork.

Stored in memory area 310 may be, for example, computer-readableinstructions for providing a user interface to user 301 via media outputcomponent 315 and, optionally, receiving and processing input from inputdevice 320. The user interface may include, among other possibilities, aweb browser and/or a client application. Web browsers enable users, suchas user 301, to display and interact with media and other informationtypically embedded on a web page or a website from self-driving vehiclecontroller 110. A client application may allow user 301 to interactwith, for example, self-driving vehicle controller 110. For example,instructions may be stored by a cloud service and the output of theexecution of the instructions sent to the media output component 315.

IV. Exemplary Server Device

FIG. 4 depicts an exemplary configuration of an exemplary servercomputer device shown in FIG. 1, in accordance with one embodiment ofthe present disclosure. A server computer device 401 may include, but isnot limited to, database server 216, remote server 212, and self-drivingvehicle controller 110 (all shown in FIG. 2). Server computer device 401may also include a processor 405 for executing instructions.Instructions may be stored in a memory area 410. Processor 405 mayinclude one or more processing units (e.g., in a multi-coreconfiguration).

Processor 405 may be operatively coupled to a communication interface415 such that server computer device 401 may be capable of communicatingwith a remote device such as another server computer device 401, clientsystems 214, or facility computer device 210 (both shown in FIG. 2). Forexample, communication interface 415 may receive requests from ortransmit requests to client systems 214 via the Internet.

Processor 405 may also be operatively coupled to a storage device 434.Storage device 434 may be any computer-operated hardware suitable forstoring and/or retrieving data, such as, but not limited to, dataassociated with database 220 (shown in FIG. 2). In some embodiments,storage device 434 may be integrated in server computer device 401. Forexample, server computer device 401 may include one or more hard diskdrives as storage device 434. In other embodiments, storage device 434may be external to server computer device 401 and may be accessed by aplurality of server computer devices 401. For example, storage device434 may include a storage area network (SAN), a network attached storage(NAS) system, and/or multiple storage units such as hard disks and/orsolid state disks in a redundant array of inexpensive disks (RAID)configuration.

In some embodiments, processor 405 may be operatively coupled to storagedevice 434 via a storage interface 420. Storage interface 420 may be anycomponent capable of providing processor 405 with access to storagedevice 434. Storage interface 420 may include, for example, an AdvancedTechnology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, aSmall Computer System Interface (SCSI) adapter, a RAID controller, a SANadapter, a network adapter, and/or any component providing processor 405with access to storage device 434.

Processor 405 executes computer-executable instructions for implementingaspects of the disclosure. In some embodiments, processor 405 may betransformed into a special purpose microprocessor by executingcomputer-executable instructions or by otherwise being programmed. Forexample, processor 405 may be programmed with the instructions such asare illustrated in FIG. 5.

V. Exemplary Computer-Implemented Method for Maintaining theSelf-Driving Vehicle

FIG. 5 depicts a flow chart of an exemplary computer-implemented method500 for maintaining self-driving vehicle 100 (shown in FIG. 1) usingsystem 200 shown in FIG. 2. In the exemplary embodiment, method 500 maybe performed by self-driving vehicle controller 110 (shown in FIG. 1).

In the exemplary embodiment, self-driving vehicle controller 110 maydetermine 505 that a maintenance operation is required for self-drivingvehicle 100. While method 500 describes a single maintenance operation,in other embodiments method 500 may be applicable in situations whereself-driving vehicle controller 110 determines 505 that multiplemaintenance operations are required. Based upon the determination of themaintenance operation being required, self-driving vehicle controller110 may determine an amount of time needed to perform the maintenanceoperation. The amount of time may be based upon information stored indatabase 220 (shown in FIG. 2). In some embodiments, self-drivingvehicle controller 110 may receive an error message from a component orsystem of self-driving vehicle 100, such as sensor 105 (shown in FIG.1). The error message may indicate that the component or system needsmaintenance to be performed.

Self-driving vehicle controller 110 may determine 505 the maintenanceoperation to be performed by requesting information about themaintenance operations associated with the error message from database220. In these embodiments, self-driving vehicle controller 110 maydetermine whether it is safe to operate self-driving vehicle 100 basedupon the error message.

In other embodiments, self-driving vehicle controller 110 may determine505 that a maintenance operation is required based upon a predeterminedthreshold being reached or exceeded. For example, the predeterminedthreshold may be related to the number of hours that self-drivingvehicle 100 has been operating, a number of miles that self-drivingvehicle 100 has traveled, and/or an amount of time since a previousmaintenance operation.

In still other embodiments, self-driving vehicle controller 110 mayreceive a message from the operator of self-driving vehicle 100. Theoperator message may indicate that self-driving vehicle 100 requires oneor more maintenance operations. These operator-initiated maintenanceoperations may, for example, be for performance issues with self-drivingvehicle 100 that self-driving vehicle controller 110 is unable todetect, such as the steering wheel pulling to the right.

In still other embodiments, self-driving vehicle controller 110 mayreceive a maintenance message from a remote server associated with avehicle manufacturer of the self-driving vehicle 100, and/or aninsurance provider providing insurance for the vehicle operator/ownerand/or the self-driving vehicle. The maintenance message may indicatethat self-driving vehicle 100 requires one or more maintenanceoperations. The maintenance operations may be necessary based upon (1)an amount of self-driving vehicle 100 usage or miles; (2) time from lastmaintenance; (3) autonomous or self-driving vehicle re-calls; (4)autonomous or semi-autonomous vehicle systems, software, or electronicsre-calls; and/or (5) autonomous or semi-autonomous vehicle systems,electronics, and/or software upgrades, such as new or upgraded versionsof autonomous or semi-autonomous vehicle software.

The maintenance message may also indicate a severity of the maintenanceissue, and/or disable certain autonomous or semi-autonomous featuresuntil the require maintenance is completed (via interaction with thevehicle controller). Certain maintenance messages may prioritize themaintenance due to the perceived severity of the maintenance required,and/or adjust an operator's schedule or digital calendar accordingly tofacilitate timely maintenance completion and vehicle safety.

Self-driving vehicle controller 110 may retrieve 510 an operatorschedule for the operator of self-driving vehicle 100 from client system214 (shown in FIG. 2). The operator schedule may include a plurality oftimes and locations where the operator is scheduled to be. For example,a schedule may include, but is not limited to, when the operator will beat work, when the operator will be at home, when the operator will be atmeetings away from a primary work location, and when the operator isscheduled to transport family members and/or to what locations thesefamily members are scheduled to be taken.

In some embodiments, self-driving vehicle controller 110 may retrieve510 schedules from client systems 214 associated with a plurality ofoperators, where each of the plurality of operators is associated withself-driving vehicle 100. An example would be a family where multiplemembers of the family need to use self-driving vehicle 100. Anotherexample would be a car-sharing program, where multiple individualsorganize to share expenses and the use of self-driving vehicle 100.

Self-driving vehicle controller 110 may retrieve 515 a facility schedulefor a maintenance facility selected to perform the maintenance operationfrom facility computer device 210 (shown in FIG. 2). The facilityschedule may include, but is not limited to, when the maintenancefacility is scheduled to perform other maintenance operations, whatmaintenance operations the maintenance facility is capable ofperforming, and/or at what times the maintenance facility is availableto perform maintenance operations. In some embodiments, self-drivingvehicle controller 110 may retrieve 515 facility schedules from aplurality of facility computer devices 210 to determine which facilityis capable of performing the desired maintenance operation. Capabilitymay mean whether the maintenance facility has the equipment andcertifications to perform the maintenance operation or whether themaintenance facility has the available time to perform the maintenanceoperation.

Self-driving vehicle controller 110 may determine 520 a time forperforming the maintenance operation based upon the operator schedule,the facility schedule, and/or the amount of time required to completethe maintenance operations. In the exemplary embodiment, self-drivingvehicle controller 110 may calculate a total amount of time for themaintenance operation, which may include the amount of time for themaintenance operation, the time for self-driving vehicle 100 to travelfrom a first location or starting point to the maintenance facility, thetime to travel from the maintenance facility to a second location orpredetermined point, and/or a buffer amount of time.

Self-driving vehicle controller 110 may determine the time to and fromthe maintenance facility based upon navigation mapping between thelocations and further based upon traffic patterns for the times of daythat self-driving vehicle 100 would be traveling. The buffer amount oftime may be based upon the average amount of time that the maintenancefacility is running behind on appointments, or the buffer amount of timemay be predetermined by the operator, the manufacturer, and/or themaintenance facility. Self-driving vehicle controller 110 may determinethe starting point based upon the operator schedule, where the startingpoint is the location of self-driving vehicle 100 at that time.

In some embodiments, self-driving vehicle controller 110 may compare thetotal amount of time with the operator schedule to determine one or moreavailable times when the operator has a gap of time with no plannedtravel or planned use of self-driving vehicle 100 that exceeds the totalamount of time. Self-driving vehicle controller 110 may compare the oneor more available times with one or more facility schedules to determinea compatible time when at least one of the maintenance facilities hasavailability to perform the maintenance operation at the one or moreavailable times. In other embodiments, the operator schedule and the oneor more facility schedules may be directly compared to find a compatibletime of the appropriate length for the maintenance operation.

In the exemplary embodiment, self-driving vehicle controller 110 mayretrieve the schedules of multiple maintenance facilities capable ofperforming the desired maintenance operation. Self-driving vehiclecontroller 110 may limit the maintenance facilities that it retrievesschedules from based upon distance from the starting location.Additionally, if self-driving vehicle controller 110 is unable todetermine a compatible time to perform the maintenance operation withina certain period of time, i.e., two weeks, self-driving vehiclecontroller 110 may look at schedules for additional facilities that maybe farther away from the starting location.

In the exemplary embodiment once self-driving vehicle controller 110 hasdetermined a compatible time for a maintenance appointment at amaintenance facility, self-driving vehicle controller 110 maycommunicate with the corresponding facility computer device 210 toreserve a maintenance appointment at the compatible time. Self-drivingvehicle controller 110 may transmit, to the operator of self-drivingvehicle 100, a request for approval to perform the maintenance operationat the determined time. In some embodiments, self-driving vehiclecontroller 110 may transmit this request via an email or text message toclient system 214.

Once self-driving vehicle controller 110 receives an affirmative reply(i.e., message) from the operator of self-driving vehicle 100,self-driving vehicle controller 110 may confirm the maintenanceappointment with facility computer device 210. If self-driving vehiclecontroller 110 receives a negative reply from the operator, self-drivingvehicle controller 110 may cancel the maintenance appointment withfacility computer device 210 and determine 520 a different time toperform the maintenance operation.

At the appropriate time, self-driving vehicle controller 110 mayinstruct 525 self-driving vehicle 100 to drive to the maintenancefacility to arrive at the time of the maintenance appointment. Whenself-driving vehicle 100 arrives at the maintenance facility,self-driving vehicle controller 110 may check in with facility computerdevice 210. For example, self-driving vehicle controller 110 may send asignal to facility computer device 210 to indicate that self-drivingvehicle 100 has arrived at the maintenance facility for the maintenanceappointment.

After completion of the maintenance operation, self-driving vehiclecontroller 110 may instruct 530 self-driving vehicle 100 to drive to thesecond location. In some embodiments, the second location may be thesame as the starting point. In other embodiments, the second locationmay be a location where a different operator will use self-drivingvehicle 100. In still other embodiments, the second location may be aknown waiting point for self-driving vehicle 100, such as a garage. Insome embodiments, the second location may be based upon a user profileof the operator of self-driving vehicle 100. In some furtherembodiments, self-driving vehicle controller 110 may receive a messagefrom an operator indicating an updated location where the self-drivingvehicle 100 should travel to after the maintenance operation iscomplete. For example, if completion of the maintenance operation isdelayed, then the operator may change the second location while themaintenance operation is being performed.

VI. Exemplary Computer Device for Maintaining the Self-Driving Vehicle

FIG. 6 depicts a diagram 600 of components of one or more exemplarycomputing devices that may be used in system 200 shown in FIG. 2. Insome embodiments, computing device 610 may be similar to self-drivingvehicle controller 110 (shown in FIG. 1) and/or to remote server 212(shown in FIG. 2). Database 620 may be coupled with several separatecomponents within computing device 610, which perform specific tasks. Inthis embodiment, database 620 may include maintenance operations 622,maintenance facilities 624, facility schedules 626, and operatorschedules 628. In some embodiments, database 620 may be similar todatabase 220 (shown in FIG. 2).

Computing device 610 may include database 620, as well as data storagedevices 630. Computing device 610 also may include a communicationcomponent 640 for retrieving 510 an operator schedule and retrieving 515a facility schedule (both shown in FIG. 5). Computing device 610 furthermay include a determining component 650 for determining 505 that amaintenance operation is required and determining 520 a time forperforming the maintenance operation (both shown in FIG. 5). Moreover,computing device 610 may include an instructing component 660 forinstructing 525 self-driving vehicle to drive to the facility andinstructing 530 self-driving vehicle to drive to a predetermined point(both shown in FIG. 5). A processing component 670 may assists withexecution of computer-executable instructions associated with thesystem.

VII. Exemplary Insurance-Related Functionality

In another aspect, a computer-implemented method of monitoringmaintenance performed on a self-driving vehicle may be provided. Themethod may include (1) collecting, generating, or receiving, via one ormore processors (such as processors or servers associated with aninsurance provider), maintenance operation information from aself-driving vehicle controller associated with a self-driving vehicle;(2) determining or detecting, via the one or more processors, whichmaintenance operations were performed on the self-driving vehicle and/orwhen those maintenance operations were performed based upon themaintenance operation information; (3) comparing, via the one or moreprocessors, the performed maintenance operations with a manufacturer'smaintenance required schedule for the self-driving vehicle; and/or (4)transmitting, via the one or more processors, such as by using wirelesscommunication or data transmission, the insurance-related message to amobile device of a vehicle owner (or otherwise causing, via the one ormore processors, the insurance-related message to be displayed on themobile device of the vehicle operator or a policy holder of an insurancepolicy that may relate to the vehicle) to facilitate informing thevehicle operator of potentially required or needed maintenance operationfor the safe and proper operation of the self-driving vehicle. Themethod may include additional, less, or alternate functionality,including that discussed elsewhere herein.

For instance, the self-driving vehicle controller may transmitmaintenance operation information every time a maintenance operation isperformed on self-driving vehicle, or self-driving vehicle controllermay store maintenance operation information and transmit the storedmaintenance operation information in batches on a recurring basis, uponrequest from a server associated with the insurance provider, and/orupon an input from the operator of the self-driving vehicle. Themaintenance operation information may include which maintenanceoperations were performed on self-driving vehicle, when thosemaintenance operations were performed, which facility performed themaintenance operations, which maintenance operations were scheduled butnot performed, which maintenance operations are needed and/or requiredbut have not yet been performed, any warnings that the self-drivingvehicle controller has detected, and/or the mileage and currentoperating hours of the self-driving vehicle.

The insurance-related message may include an update to a vehicleoperator insurance policy, such as a change in premium, discount, orrate based upon the maintenance operation information received for aninsurance customer's review or approval.

Additionally or alternatively, the method may include adjusting,updating, and/or generating, via one or more processors, insurancepolicies based upon maintenance operation information. For instance,discounts or lower premiums on vehicle insurance for insured that havethe self-driving vehicles that have performed all of the required and/orneeded maintenance operations to ensure safe and proper operation of theself-driving vehicle.

VIII. Exemplary Embodiments & Methods

The present embodiments may provide a high level of safety and a leastamount of impact to smart vehicle owners. Autonomous or semi-autonomousvehicles may automatically determine and/or schedule preventive andcorrective maintenance, such as according to the vehicle owner's onlinecalendar and vehicle dealership availability, and may even drivethemselves to maintenance appointments and check in with the dealership(or other repair shop) when they have arrived. Additionally oralternatively, the vehicle owner or operator may schedule maintenancefor issues that the vehicle is not self-aware of through the vehicle'sown self diagnostics.

With autonomous vehicles driving themselves to maintenance appointments,time savings for the vehicle owner will be provided and/or operationalsafety of the vehicle may be ensured/enhanced by timely correction ofvehicle or maintenance issues. The vehicle or maintenance issues mayrelate to the electronics, sensors, sensor arrays, systems, sub-systems,and/or software that provide autonomous or semi-autonomous vehicletechnology or functionality. Such electronics, sensors, sensor arrays,systems, sub-systems, or software may be subject to various re-calls,system upgrades or enhancements, warranty expirations, periodic checksor maintenance, and/or revised software versions over time. Additionallyor alternatively, the autonomous or semi-autonomous vehicles may haveadvanced self-diagnostic capabilities to ensure they are performing in asafe manner and/or detect systems or components that are in need ofrepair. Timely updating the autonomous or semi-autonomous vehicletechnology or functionality (and/or providing timely maintenance for thevehicles) may become an important road safety issue that the presentembodiments address.

In one aspect, a computer-implemented method of scheduling maintenancefor an autonomous vehicle may be provided. The method may include (1)receiving, via one or more processors (such as a processor mounted on anautonomous vehicle or an insurance provider remote server), anindication that an autonomous vehicle technology or functionality of anautonomous vehicle is in need of maintenance; (2) scheduling, via theone or more processors, maintenance to repair the autonomous vehicletechnology or functionality based upon (a) repair shop (or vehicledealership) availability, and/or (b) autonomous vehicle availability,the autonomous vehicle availability determined at least in part on avehicle owner's electronic calendar; and/or (3) directing, via the oneor more processors, the autonomous vehicle to drive itself to the repairshop at a given time to facilitate the repair shop completing themaintenance. The method may include additional, less, or alternatefunctionality, including that discussed elsewhere herein.

For instance, the method may include adjusting, via one or moreprocessors, an insurance policy associated with the autonomous vehiclebased upon the autonomous vehicle having the auto maintenancefunctionality and/or based upon timely completing of the requiredmaintenance. The method may further include directing, via the one ormore processors, the autonomous vehicle to drive itself to the vehicleowner's home or work address after the maintenance is completed.

The indication that the autonomous vehicle technology or functionalityis in need of maintenance may be generated from vehicle mountedelectronics performing self-diagnostics. Additionally or alternatively,the indication that the autonomous vehicle technology or functionalityis in need of maintenance may be generated from a remote server (such asan insurance provider or vehicle manufacturer remote server) and/or maybe based upon a re-call or upgrade to an autonomous vehicle technologyor functionality (such as a sensor or software upgrade or re-call), or awarranty expiration notice associated with the autonomous vehicletechnology or functionality.

In another aspect, a computer-implemented method of updating aninsurance policy for an autonomous vehicle may be provided. The methodmay include (1) receiving, via one or more processors (such as aprocessor mounted on an autonomous vehicle or a vehicle manufacturerremote server), an indication that an autonomous vehicle technology orfunctionality may be in need of maintenance for an autonomous vehiclecovered by an insurance policy issued by an insurance provider; (2)scheduling, via the one or more processors (such as via wirelesscommunication or data transmission), maintenance to repair theautonomous vehicle technology or functionality based upon (i) repairshop availability, and/or (ii) autonomous vehicle availability, theautonomous vehicle availability determined at least in part on a vehicleowner's or an insured's electronic calendar and/or an autonomous vehicleschedule or electronic calendar; (3) directing, via the one or moreprocessors, the autonomous vehicle to drive itself to the repair shop ata given time (such as a time based upon (i) the repair shopavailability, and/or (ii) the autonomous vehicle availability), tofacilitate the repair shop completing the maintenance, (4) receiving,via the one or more processors, notification that the maintenance wascompleted from a computing device (such as a vehicle controller of theautonomous vehicle, or a mobile or computing device associated with therepair shop or vehicle owner); and/or (5) updating, via the one or moreprocessors, an insurance policy for the autonomous vehicle and/orvehicle owner based upon the completion of the required maintenance tothe autonomous technology or functionality in need of repair. The methodmay include additional, less, or alternate functionality, including thatdiscussed elsewhere herein.

For instance, the method may further include directing, via the one ormore processors, the autonomous vehicle to drive itself to the vehicleowner's home or work address after the maintenance is completed. Theindication that the autonomous vehicle technology or functionality is inneed of maintenance may be generated from vehicle-mounted electronicsperforming self-diagnostics. Additionally or alternatively, theindication that the autonomous vehicle technology or functionality is inneed of maintenance may be generated from a remote server (such as aninsurance provider or vehicle manufacturer remote server) and/or may bebased upon a re-call or upgrade to an autonomous vehicle technology orfunctionality (such as a sensor or software upgrade or re-call), orwarranty or periodic maintenance information or schedules.

In another aspect, a computer-based method for scheduling maintenancefor a self-driving vehicle may be provided. The method may include (1)determining, by a remote server in communication with the self-drivingvehicle, that a maintenance operation is required for the self-drivingvehicle; and (2) generating, by the remote server, a first messagerepresenting the maintenance operation required for the self-drivingvehicle. The method may also include (3) transmitting, by the remoteserver, the first message to the self-driving vehicle, wherein the firstmessage causes the self-driving vehicle to perform automatic maintenancescheduling, the automatic maintenance scheduling including: (a)retrieving an operator schedule for an operator of the self-drivingvehicle, wherein the operator schedule includes a plurality of times andlocations that the operator is scheduled to be at over a period of time;(b) retrieving a facility schedule for a facility selected to performthe maintenance operation, wherein the facility schedule includes aplurality of times that the facility is available to perform maintenanceoperations; (c) determining a time for performing the maintenanceoperation based upon the operator schedule, the facility schedule, andan amount of time required to (i) complete the maintenance operation,(ii) drive the self-driving vehicle from a first location to thefacility to arrive at the determined time, and (iii) drive theself-driving vehicle to a second location; and (d) driving from thefirst location to the facility to arrive at the determined time. Inaddition, the method may include receiving, from the self-drivingvehicle, a second message representing that the maintenance operation iscomplete. The method may include additional, less, or alternatefunctionality, including that discussed elsewhere herein.

For instance, the method may include determining, by the remote server,that the self-driving vehicle is capable of performing the automaticmaintenance scheduling; and based on the determining step, adjusting aninsurance policy associated with the self-driving vehicle. Additionallyor alternatively, the method may include receiving, by the remoteserver, a notification that the maintenance operation is complete; andupdating, by the remote server, an insurance policy associated with theself-driving vehicle based on the completion of the maintenanceoperation. Adjusting an insurance policy associated with theself-driving vehicle may include storing maintenance data for theself-driving vehicle in a database and adjusting an amount (e.g., apremium or rate) charged by the insurance provider to insure theself-driving vehicle. Additionally or alternatively, the method mayinclude disabling, by the remote server, a component of the self-drivingvehicle in need of maintenance; and restoring, by the remote server, thecomponent of the self-driving vehicle after completion of themaintenance operation.

IX. Additional Exemplary Methods

In one aspect, a computer-implemented method of performing maintenanceon an autonomous or semi-autonomous vehicle may be provided. The methodmay include (1) receiving, via one or more processors (such as aprocessor or remote server associated with an insurance provider, avehicle dealership, and/or a vehicle manufacturer), an indication thatan autonomous or semi-autonomous vehicle functionality or technology isin need of repair or maintenance, such as subject to a vehicle re-call,subject to an electronics or software upgrade, not operating properly,periodic maintenance (oil changes, rotating tires, diagnostic checks,etc.), warranty expiration, and/or otherwise in need of repair (such asvia wireless communication or data transmission from an autonomous orsemi-autonomous vehicle functionality or technology manufacturer, or avehicle manufacturer); (2) identifying, via the one or more processors,a vehicle owner and/or an autonomous or semi-autonomous vehicle havingthe autonomous or semi-autonomous vehicle functionality or technology inneed of repair; (3) scheduling maintenance (such as a date and time of amaintenance appointment), via the one or more processors, for thevehicle owner and/or an autonomous or semi-autonomous vehicle having theautonomous or semi-autonomous vehicle functionality or technology inneed of repair, such as by comparing an electronic calendar of thevehicle owner and/or autonomous or semi-autonomous vehicle) with arepair shop's availability to complete the repair or maintenance; and/or(4) causing or directing, via the one or more processors, the autonomousor semi-autonomous vehicle to drive itself (such as from a home or workaddress of the vehicle owner) to the repair shop (or vehicle dealership)at a designated time and/or place of a maintenance appointment tofacilitate the autonomous or semi-autonomous vehicle functionality ortechnology in need of repair or maintenance being timely repaired orfixed such that vehicle or road safety may be enhanced.

In another aspect, a computer-implemented method of performingmaintenance on an autonomous or semi-autonomous vehicle may be provided.The method may include (1) receiving, via one or more vehicle-mountedprocessors (such as a smart vehicle controller mounted on an autonomousor semi-autonomous vehicle), an indication that an autonomous orsemi-autonomous vehicle functionality or technology (of the autonomousor semi-autonomous vehicle) is in need of repair or maintenance, such assubject to a vehicle re-call, subject to an electronics or softwareupgrade, not operating properly, in need of periodic maintenance (oilchanges, rotating tires, diagnostic checks, etc.), and/or otherwise inneed of repair (such as receiving the indication via wirelesscommunication or data transmission from an autonomous or semi-autonomousvehicle functionality or technology manufacturer, a vehiclemanufacturer, a vehicle dealership, and/or an insurance provider); (2)scheduling maintenance, via the one or more vehicle-mounted processors,for the vehicle owner and/or the autonomous or semi-autonomous vehiclehaving the autonomous or semi-autonomous vehicle functionality ortechnology in need of repair, such as by comparing an electroniccalendar and/or location(s) of the vehicle owner (and/or the autonomousor semi-autonomous vehicle) with a repair shop's availability tocomplete the repair or maintenance; and/or (3) causing or directing, viathe one or more vehicle-mounted processors, the autonomous orsemi-autonomous vehicle to drive itself to the repair shop at adesignated time and/or place of a maintenance appointment to facilitatethe autonomous or semi-autonomous vehicle functionality or technology inneed of repair or maintenance being timely repaired or fixed by therepair shop such that vehicle or road safety may be enhanced.

In another aspect, a computer-implemented method of performingmaintenance on an autonomous or semi-autonomous vehicle may be provided.The method may include (1) receiving, via one or more processors (suchas at a processor or remote server associated with an insuranceprovider, a vehicle dealership, and/or a vehicle manufacturer), anindication that an autonomous or semi-autonomous vehicle functionalityor technology is in need of repair or maintenance, such as subject to avehicle re-call, subject to an electronics or software upgrade, notoperating properly, in need of periodic maintenance (oil changes,rotating tires, diagnostic checks, etc.), and/or otherwise in need ofrepair (such as receiving the indication via wireless communication ordata transmission from an autonomous or semi-autonomous vehiclefunctionality or technology manufacturer, and/or a vehiclemanufacturer); (2) identifying, via the one or more processors, avehicle owner and/or an autonomous or semi-autonomous vehicle associatedwith, or having, the autonomous or semi-autonomous vehicle functionalityor technology in need of repair; (3) generating, via the one or moreprocessors, a message to the vehicle owner and/or the autonomous orsemi-autonomous vehicle indicating that the autonomous orsemi-autonomous vehicle functionality or technology is in need of repairor maintenance; and/or (4) sending or transmitting, via the one or moreprocessors, the message to the vehicle owner mobile device and/or avehicle controller of the autonomous or semi-autonomous vehicleindicating that the autonomous or semi-autonomous vehicle functionalityor technology is in need of repair or maintenance to facilitate (i) thevehicle owner mobile device, and/or (ii) the vehicle controller of theautonomous or semi-autonomous vehicle (a) automatically schedulingmaintenance with a repair shop to complete the needed repairs ormaintenance, and/or (b) directing or otherwise causing the autonomous orsemi-autonomous vehicle to drive itself to an maintenance appointmentsuch that vehicle safety may be enhanced.

In another aspect, a computer-implemented method of performingmaintenance on an autonomous or semi-autonomous vehicle may be provided.The method may include (1) determining, via one or more processors (suchas a vehicle-mounted controller, a processor or remote server associatedwith an insurance provider, and/or a vehicle dealership), maintenance orrepair is needed for an autonomous or semi-autonomous vehicle (such asan autonomous or semi-autonomous vehicle functionality or technology ofthe autonomous or semi-autonomous vehicle is in need of periodicmaintenance, maintenance associated with a warranty, and/or repair;subject to a vehicle re-call; and/or subject to an electronics orsoftware upgrade); (2) scheduling a date and time of a maintenanceappointment for the maintenance or repair, via the one or moreprocessors, for the autonomous or semi-autonomous vehicle based upon oneor more electronic calendars associated with schedules of the vehicleowner, the autonomous or semi-autonomous vehicle, and/or a vehicledealership or repair shop, and/or based upon a severity level of themaintenance or repair; and/or (3) causing or directing, via the one ormore processors, the autonomous or semi-autonomous vehicle to drive froma home or work location of the vehicle owner to the vehicle dealershipor repair shop at the date and time of the maintenance appointment tofacilitate maintenance or repair completion.

The foregoing methods may include additional, less, or alternateactions, including that discussed elsewhere herein. For instance, themethods may further include receiving, via one or more remote processors(such as at an insurance provider remote server), an electronicindication that the maintenance or repair of the autonomous vehiclefunctionality or technology has been successfully completed; and/oradjusting or updating, via the one or more remote processors, aninsurance policy (such as premium, discount, rate) based upon completionof the maintenance or repair of the autonomous vehicle functionality ortechnology.

The methods may further include causing or directing, via the one ormore processors, the autonomous or semi-autonomous vehicle to drive fromthe vehicle dealership or repair shop to the home or work address of thevehicle owner after completion of the maintenance to facilitatemaintenance or repair completion. The methods may further includedisabling, via the one or more processors, the autonomous orsemi-autonomous vehicle functionality or technology that is in needrepair or maintenance after notification of the needed repair ormaintenance is received, and/or until the needed repair or maintenanceis successfully completed; and/or restoring operation of the autonomousor semi-autonomous vehicle functionality or technology after the neededrepair or maintenance is successfully completed.

The methods may include adjusting, via one or more processors, aninsurance policy associated with the autonomous vehicle based upon theautonomous vehicle having the auto maintenance functionality and/orbased upon timely completing of the required maintenance. The indicationthat the autonomous vehicle technology or functionality is in need ofmaintenance may be generated from vehicle mounted electronics performingself-diagnostics. Additionally or alternatively, the indication that theautonomous vehicle technology or functionality is in need of maintenancemay be generated from a remote server (such as an insurance provider orvehicle manufacturer remote server) and/or based upon a re-call orupgrade to an autonomous vehicle technology or functionality (such as asensor or software upgrade or re-call), or a warranty expiration noticeassociated with the autonomous vehicle technology or functionality.

X. Additional Considerations

As will be appreciated based upon the foregoing specification, theabove-described embodiments of the disclosure may be implemented usingcomputer programming or engineering techniques including computersoftware, firmware, hardware or any combination or subset thereof. Anysuch resulting program, having computer-readable code means, may beembodied or provided within one or more computer-readable media, therebymaking a computer program product, i.e., an article of manufacture,according to the discussed embodiments of the disclosure. Thecomputer-readable media may be, for example, but is not limited to, afixed (hard) drive, diskette, optical disk, magnetic tape, semiconductormemory such as read-only memory (ROM), and/or any transmitting/receivingmedium such as the Internet or other communication network or link. Thearticle of manufacture containing the computer code may be made and/orused by executing the code directly from one medium, by copying the codefrom one medium to another medium, or by transmitting the code over anetwork.

These computer programs (also known as programs, software, softwareapplications, “apps”, or code) include machine instructions for aprogrammable processor, and can be implemented in a high-levelprocedural and/or object-oriented programming language, and/or inassembly/machine language. As used herein, the terms “machine-readablemedium” “computer-readable medium” refers to any computer programproduct, apparatus and/or device (e.g., magnetic discs, optical disks,memory, Programmable Logic Devices (PLDs)) used to provide machineinstructions and/or data to a programmable processor, including amachine-readable medium that receives machine instructions as amachine-readable signal. The “machine-readable medium” and“computer-readable medium,” however, do not include transitory signals.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

As used herein, a processor may include any programmable systemincluding systems using micro-controllers, reduced instruction setcircuits (RISC), application specific integrated circuits (ASICs), logiccircuits, and any other circuit or processor capable of executing thefunctions described herein. The above examples are example only, and arethus not intended to limit in any way the definition and/or meaning ofthe term “processor.”

As used herein, the terms “software” and “firmware” are interchangeable,and include any computer program stored in memory for execution by aprocessor, including RAM memory, ROM memory, EPROM memory, EEPROMmemory, and non-volatile RAM (NVRAM) memory. The above memory types areexample only, and are thus not limiting as to the types of memory usablefor storage of a computer program.

In one embodiment, a computer program is provided, and the program isembodied on a computer readable medium. In an exemplary embodiment, thesystem is executed on a single computer system, without requiring aconnection to a sever computer. In a further embodiment, the system isbeing run in a Windows® environment (Windows is a registered trademarkof Microsoft Corporation, Redmond, Wash.). In yet another embodiment,the system is run on a mainframe environment and a UNIX® serverenvironment (UNIX is a registered trademark of X/Open Company Limitedlocated in Reading, Berkshire, United Kingdom). The application isflexible and designed to run in various different environments withoutcompromising any major functionality. In some embodiments, the systemincludes multiple components distributed among a plurality of computingdevices. One or more components may be in the form ofcomputer-executable instructions embodied in a computer-readable medium.The systems and processes are not limited to the specific embodimentsdescribed herein. In addition, components of each system and eachprocess can be practiced independent and separate from other componentsand processes described herein. Each component and process can also beused in combination with other assembly packages and processes.

As used herein, an element or step recited in the singular and proceededwith the word “a” or “an” should be understood as not excluding pluralelements or steps, unless such exclusion is explicitly recited.Furthermore, references to “exemplary embodiment” or “one embodiment” ofthe present disclosure are not intended to be interpreted as excludingthe existence of additional embodiments that also incorporate therecited features.

This written description uses examples to disclose the disclosure,including the best mode, and also to enable any person skilled in theart to practice the disclosure, including making and using any devicesor systems and performing any incorporated methods. The patentable scopeof the disclosure is defined by the claims, and may include otherexamples that occur to those skilled in the art. Such other examples areintended to be within the scope of the claims if they have structuralelements that do not differ from the literal language of the claims, orif they include equivalent structural elements with insubstantialdifferences from the literal languages of the claims.

We claim:
 1. A computer-based method for maintaining a self-drivingvehicle, the method implemented using a vehicle controlling (“VC”)computer device installed on the self-driving vehicle, the VC computerdevice in communication with a memory, the method comprising:determining, by the VC computer device, that a maintenance operation isrequired for the self-driving vehicle; electronically retrieving, by theVC computer device, from an operator computing device in networkedconnection with the VC computer device, an operator schedule for anoperator of the self-driving vehicle, wherein the operator scheduleincludes a plurality of times and locations that the operator isscheduled to be at over a period of time; electronically retrieving, bythe VC computer device, a plurality of facility schedules from acorresponding plurality of facility computing devices in networkedconnection with the VC computing device, wherein each facility scheduleof the plurality of facility schedules includes an identification ofmaintenance operations capable of being performed by a respectivefacility and a plurality of times that the respective facility isavailable to perform the maintenance operations; selecting, by the VCcomputing device, a facility capable of performing the requiredmaintenance operation based on the plurality of facility schedules andat least one of the operator schedule and the required maintenanceoperation; determining, by the VC computer device, a time for performingthe required maintenance operation based upon the operator schedule, thefacility schedule of the selected facility, and an amount of timerequired to (i) complete the required maintenance operation, (ii) drivethe self-driving vehicle from a first location to the selected facilityto arrive at the determined time, and (iii) drive the self-drivingvehicle to a second location; and controlling, by the VC computerdevice, the self-driving vehicle to drive from the first location to theselected facility to arrive at the determined time.
 2. The method ofclaim 1, wherein determining that a maintenance operation is requiredfurther comprises receiving an error message from a component of theself-driving vehicle indicating that an error has occurred with thecomponent, the method further comprising determining whether theself-driving vehicle is capable of safe operation based upon thereceived error message.
 3. The method of claim 1 further comprising:transmitting a first message to a remote server associated with aninsurance provider indicating completion of the required maintenanceoperation; and receiving a second message from the remote serverindicating an update to an insurance policy associated with theself-driving vehicle based on the first message.
 4. The method of claim1, wherein determining that a maintenance operation is required furthercomprises receiving a message that a maintenance operation is requiredfrom one of the operator of the self-driving vehicle and a remoteserver.
 5. The method of claim 1, wherein determining that a maintenanceoperation is required further comprises determining that a predeterminedthreshold has been exceeded by operation of the self-driving vehicle,wherein the predetermined threshold is one of mileage and time.
 6. Themethod of claim 1 further comprising: transmitting, to the respectivefacility computing device associated with the selected facility, atentative appointment at the determined time with the selected facility;transmitting, to the operator, a request for approval for performing therequired maintenance operation at the determined time; receiving anaffirmative response from the operator, and transmitting, to thefacility computing device, a confirmation of the tentative appointment.7. The method of claim 1, wherein the second location is based upon atleast one of the operator schedule, an operator profile, a startingpoint, and an operator input.
 8. A vehicle controlling (“VC”) computersystem used to schedule and perform maintenance on a self-drivingvehicle, the VC computer system installed in a self-driving vehicle, theVC computer system comprising: at least one non-transitory memory devicestoring executable instructions; and at least one processorcommunicatively coupled to the at least one memory device, the at leastone processor programmed to: determine that a maintenance operation isrequired for the self-driving vehicle; electronically retrieve anoperator schedule for an operator of the self-driving vehicle from anoperator computing device in networked connection with the VC computerdevice, wherein the operator schedule includes a plurality of times andlocations that the operator is scheduled to be at over a period of timeand is stored on the operator computing device; electronically retrievea plurality of facility schedules from a corresponding plurality offacility computing devices in networked connection with the VC computingdevice, wherein each facility schedule of the plurality of facilityschedules includes an identification of maintenance operations capableof being performed by a respective facility and a plurality of timesthat the respective facility is available to perform the maintenanceoperations; select a facility capable of performing the requiredmaintenance operation based on the plurality of facility schedules andat least one of the operator schedule and the required maintenanceoperation; determine a time for performing the required maintenanceoperation based upon the operator schedule, the facility schedule of theselected facility, and an amount of time required to (i) complete therequired maintenance operation, (ii) drive the self-driving vehicle froma first location to the selected facility to arrive at the determinedtime, and (iii) drive the self-driving vehicle to a second location; andcontrol the self-driving vehicle to drive from the first location to theselected facility to arrive at the determined time.
 9. The VC computersystem of claim 8, wherein the at least one processor is furtherprogrammed to receive an error message from a component of theself-driving vehicle indicating that an error has occurred with thecomponent.
 10. The VC computer system of claim 8, wherein the at leastone processor is further programmed to receive a message from theoperator of the self-driving vehicle that a maintenance operation isrequired.
 11. The VC computer system of claim 8, wherein the at leastone processor is further programmed to determine that a predeterminedthreshold has been exceeded by operation of the self-driving vehicle,wherein the predetermined threshold is one of mileage and time.
 12. TheVC computer system of claim 8, wherein the at least one processor isfurther programmed to: transmit, to the respective facility computingdevice associated with the respective facility, a tentative appointmentat the determined time with the selected facility; transmit, to theoperator, a request for approval for performing the required maintenanceoperation at the determined time; receive an affirmative response fromthe operator, and transmit, to the selected facility, a confirmation ofthe tentative appointment.
 13. The VC computer system of claim 8,wherein the second location is based upon at least one of the operatorschedule, an operator profile, a starting point, and an operator input.14. At least one non-transitory computer-readable storage media havingcomputer-executable instructions embodied thereon, wherein when executedby at least one processor, the computer-executable instructions causethe at least one processor to: determine that a maintenance operation isrequired for a self-driving vehicle; electronically retrieve an operatorschedule for an operator of the self-driving vehicle from an operatorcomputing device in networked connection with the VC computer device,wherein the operator schedule includes a plurality of times andlocations that the operator is scheduled to be at over a period of time;electronically retrieve a plurality of facility schedules from acorresponding plurality of facility computing devices in networkedconnection with the VC computing device, wherein each facility scheduleof the plurality of facility schedules includes an identification ofmaintenance operations capable of being performed by a respectivefacility and a plurality of times that the respective facility isavailable to perform the maintenance operations; select a facilitycapable of performing the required maintenance operation based on theplurality of facility schedules and at least one of the operatorschedule and the required maintenance operation; determine a time forperforming the required maintenance operation based upon the operatorschedule, the facility schedule of the selected facility, and an amountof time required to (i) complete the required maintenance operation,(ii) drive the self-driving vehicle from a first location to theselected facility to arrive at the determined time, and (iii) drive theself-driving vehicle to a second location; and control the self-drivingvehicle to drive from the first location to the facility to arrive atthe determined time.
 15. The computer-readable storage media of claim14, wherein the computer-executable instructions further cause the atleast one processor to determine that a maintenance operation isrequired for a self-driving vehicle based upon at least one of an errormessage from a component of the self-driving vehicle indicating that anerror has occurred with the component, a message from the operator ofthe self-driving vehicle that a maintenance operation is required andexceeding a predetermined threshold by operation of the self-drivingvehicle, wherein the predetermined threshold is one of mileage and time.16. The computer-readable storage media of claim 14, wherein thecomputer-executable instructions further cause the at least oneprocessor to: transmit, to the selected facility, a tentativeappointment at the determined time with the selected facility.
 17. Thecomputer-readable storage media of claim 16, wherein thecomputer-executable instructions further cause the at least oneprocessor to: transmit, to the operator, a request for approval forperforming the required maintenance operation at the determined time.18. The computer-readable storage media of claim 17, wherein thecomputer-executable instructions further cause the at least oneprocessor to: receive an affirmative response from the operator;transmit, to the selected facility, a confirmation of the tentativeappointment; and transmit, to the selected facility, a check-in signal,upon arriving at the selected facility.
 19. The computer-readablestorage media of claim 14, wherein the computer-executable instructionsfurther cause the at least one processor to: disable a component of theself-driving vehicle in need of maintenance.
 20. The computer-readablestorage media of claim 12, wherein the computer-executable instructionsfurther cause the at least one processor to: restore the component ofthe self-driving vehicle after completion of the required maintenanceoperation.